package com.baidu.location;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;

public final class s
{
  private String a = null;
  private boolean b = true;

  public s(String paramString)
  {
    if (paramString != null)
    {
      str = paramString;
      if (paramString.length() <= 100);
    }
    for (String str = paramString.substring(0, 100); ; str = "")
    {
      this.a = str;
      return;
    }
  }

  private static String a(int paramInt)
  {
    if (!(n.w().exists()))
      return null;
    while (true)
    {
      int i;
      try
      {
        Object localObject = new RandomAccessFile(n.w(), "rw");
        ((RandomAccessFile)localObject).seek(0L);
        i = ((RandomAccessFile)localObject).readInt();
        if (n.a(i, ((RandomAccessFile)localObject).readInt(), ((RandomAccessFile)localObject).readInt()))
          break label158;
        ((RandomAccessFile)localObject).close();
        n.y();
        return null;
        ((RandomAccessFile)localObject).close();
        return null;
        long l = 12L + (paramInt - 1) * 1024;
        ((RandomAccessFile)localObject).seek(l);
        i = ((RandomAccessFile)localObject).readInt();
        byte[] arrayOfByte = new byte[i];
        ((RandomAccessFile)localObject).seek(l + 4L);
        paramInt = 0;
        while (paramInt < i)
        {
          arrayOfByte[paramInt] = ((RandomAccessFile)localObject).readByte();
          paramInt += 1;
        }
        ((RandomAccessFile)localObject).close();
        localObject = new String(arrayOfByte);
        return localObject;
      }
      catch (IOException localIOException)
      {
        return null;
      }
      label158: if (paramInt == 0)
        continue;
      if (paramInt != i + 1)
        continue;
    }
  }

  private static boolean a(String paramString)
  {
    if ((paramString == null) || (!(paramString.startsWith("&nr"))));
    do
      return false;
    while ((!(n.w().exists())) && (!(n.y())));
    while (true)
    {
      int l;
      try
      {
        RandomAccessFile localRandomAccessFile = new RandomAccessFile(n.w(), "rw");
        localRandomAccessFile.seek(0L);
        int k = localRandomAccessFile.readInt();
        j = localRandomAccessFile.readInt();
        l = localRandomAccessFile.readInt();
        if (!(n.a(k, j, l)))
        {
          localRandomAccessFile.close();
          n.y();
          return false;
        }
        if (ak.R)
        {
          if (k != ak.U)
          {
            if ((l <= 1) || (!(paramString.equals(a(l - 1)))))
              break label158;
            localRandomAccessFile.close();
            return false;
          }
          if (l != 1)
            break label483;
          i = ak.U;
          if (paramString.equals(a(i)))
          {
            localRandomAccessFile.close();
            return false;
          }
        }
        label158: localRandomAccessFile.seek((l - 1) * 1024 + 12 + 0L);
        if (paramString.length() > 750)
        {
          localRandomAccessFile.close();
          return false;
        }
        paramString = Jni.a(paramString);
        i = paramString.length();
        if (i > 1020)
        {
          localRandomAccessFile.close();
          return false;
        }
        localRandomAccessFile.writeInt(i);
        localRandomAccessFile.writeBytes(paramString);
        if (k == 0)
        {
          localRandomAccessFile.seek(0L);
          localRandomAccessFile.writeInt(1);
          localRandomAccessFile.writeInt(1);
          localRandomAccessFile.writeInt(2);
        }
        while (true)
        {
          localRandomAccessFile.close();
          return true;
          if (k < ak.U - 1)
          {
            localRandomAccessFile.seek(0L);
            localRandomAccessFile.writeInt(k + 1);
            localRandomAccessFile.seek(8L);
            localRandomAccessFile.writeInt(k + 2);
          }
          if (k == ak.U - 1)
          {
            localRandomAccessFile.seek(0L);
            localRandomAccessFile.writeInt(ak.U);
            if ((j == 0) || (j == 1))
              localRandomAccessFile.writeInt(2);
            localRandomAccessFile.seek(8L);
            localRandomAccessFile.writeInt(1);
          }
          if (l != j)
            break;
          if (l != ak.U)
            break label491;
          i = 1;
          if (i != ak.U)
            break label499;
          j = 1;
          localRandomAccessFile.seek(4L);
          localRandomAccessFile.writeInt(j);
          localRandomAccessFile.writeInt(i);
        }
        if (l == ak.U);
        for (i = 1; ; i = l + 1)
          while (true)
          {
            if (i == j)
            {
              if (i != ak.U)
                break label473;
              j = 1;
              localRandomAccessFile.seek(4L);
              localRandomAccessFile.writeInt(j);
            }
            localRandomAccessFile.seek(8L);
            localRandomAccessFile.writeInt(i);
          }
        label473: j = i + 1;
      }
      catch (IOException paramString)
      {
        return false;
      }
      label483: int i = l - 1;
      continue;
      label491: i = l + 1;
      continue;
      label499: int j = i + 1;
    }
  }
}